Skip to content

Refresh GPU benchmarks + add real CuPy QuickByte#261

Open
Graviton28 wants to merge 6 commits into
masterfrom
combine-cupy-fixes
Open

Refresh GPU benchmarks + add real CuPy QuickByte#261
Graviton28 wants to merge 6 commits into
masterfrom
combine-cupy-fixes

Conversation

@Graviton28

@Graviton28 Graviton28 commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Combines #258 and #260 into one PR.

  • Fixes Old GPUs referenced in multiGPU_tensorflow_tutorial.md #235: replaces the old "CARC Benchmarks" section in multiGPU_tensorflow_tutorial.md (NVIDIA Tesla K40 on the retired Xena cluster) with fresh benchmark data and plots generated on Easley's l40s partition.
  • Fixes "CuPy - Cuda in Python" is a dead link #151: replaces the dead CuPy_on_CARC.ipynb README link (never actually added to the repo) with a real, tested cupy_intro.md — install gotchas (CUDA 13 vs 12 driver mismatch, [ctk] extra), basic usage, a real CPU-vs-GPU benchmark, and a clearly-labeled conceptual multi-GPU/NCCL section.

Fixes #151. The referenced file was never actually added to the
repo (checked full history and all branches — no trace of it
anywhere), so the README link has been a 404 since it was written.
Removing rather than recreating content that never existed.
Fixes #235. The old "CARC Benchmarks" section referenced an NVIDIA
Tesla K40 on the retired Xena cluster. Removed it entirely and
replaced it with real benchmark data + fresh plots generated on
Easley's l40s partition (single L40S GPU), comparing CPU vs GPU for
matrix multiplication and inversion at N=1000/2000/4000/8000.
Replaces the previously dead CuPy_on_CARC.ipynb link (issue #151,
which was never actually added to the repo) with an actual tested
tutorial: installing CuPy on Easley, basic array usage, and a real
CPU-vs-GPU matmul benchmark run on an l40s GPU.

Found and documented two real install gotchas along the way:
- conda-forge's default cupy package pulls CUDA 13.x, which needs a
  newer driver than Easley's GPU nodes have (cudaErrorInsufficientDriver)
  - use the cupy-cuda12x pip wheel instead.
- That wheel alone can't JIT-compile kernels (e.g. cupy.random) without
  the [ctk] extra, which bundles CUDA toolkit headers.

Also includes a "Going Further" section on multi-GPU CuPy with NCCL
and MPI, based on the CS491/591 HPC course's Lecture 20 slides -
explicitly marked as conceptual/untested since a full working
multi-GPU script wasn't verified for this QuickByte.
The CuPy dead link is being replaced with a real doc (cupy_intro.md,
separate PR) rather than just deleted, so this PR shouldn't touch
that line anymore - just the benchmark refresh (#235).
The two REPL snippets showed >>> commands and their printed output
in the same code block. Split each into a command block and a
separate "Expected output" block, matching this session's convention.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

"CuPy - Cuda in Python" is a dead link Old GPUs referenced in multiGPU_tensorflow_tutorial.md

1 participant